home *** CD-ROM | disk | FTP | other *** search
- package com.extensibility.xml;
-
- import com.extensibility.util.StringUtilities;
- import java.util.Enumeration;
- import java.util.Hashtable;
- import java.util.Vector;
-
- public class XMLStringUtilities extends StringUtilities {
- public static int parseNameValuePair(String var0, int var1, String[] var2) throws StringIndexOutOfBoundsException {
- var1 = StringUtilities.skipWhite(var0, var1);
-
- int var3;
- for(var3 = var1; var1 < var0.length() && DTDParser.isNameChar(var0.charAt(var1)); ++var1) {
- }
-
- var2[0] = var0.substring(var3, var1);
- var1 = StringUtilities.skipWhite(var0, var1);
- if (var0.charAt(var1++) != '=') {
- throw new StringIndexOutOfBoundsException();
- } else {
- var1 = StringUtilities.skipWhite(var0, var1);
- byte var4 = 39;
- if (var0.charAt(var1) != '\'' && var0.charAt(var1) != '"') {
- throw new StringIndexOutOfBoundsException();
- } else {
- if (var0.charAt(var1) == '"') {
- var4 = 34;
- }
-
- ++var1;
-
- for(var3 = var1; var1 < var0.length() && var0.charAt(var1) != var4; ++var1) {
- }
-
- var2[1] = StringUtilities.unescapeSingleQuotes(var0.substring(var3, var1++));
- var1 = StringUtilities.skipWhite(var0, var1);
- return var1;
- }
- }
- }
-
- public static Hashtable getNameValuePairs(String var0) throws StringIndexOutOfBoundsException {
- Hashtable var1 = new Hashtable();
- String[] var2 = new String[2];
- int var3 = 0;
-
- while(var3 < var0.length()) {
- var3 = parseNameValuePair(var0, var3, var2);
- var1.put(var2[0], var2[1]);
- }
-
- return var1;
- }
-
- public static String[] getEntityRefs(String var0) {
- int var1 = -1;
- Vector var2 = new Vector();
-
- for(int var3 = 0; var3 < var0.length(); ++var3) {
- char var4 = var0.charAt(var3);
- if (var1 >= 0) {
- if (var4 == ';') {
- var2.addElement(var0.substring(var1, var3));
- var1 = -1;
- }
- } else if (var4 == '&') {
- var1 = var3 + 1;
- }
- }
-
- String[] var5 = new String[var2.size()];
- var2.copyInto(var5);
- return var5;
- }
-
- public static String makeStubEntities(String[] var0) {
- StringBuffer var1 = new StringBuffer();
-
- for(int var2 = 0; var2 < var0.length; ++var2) {
- var1.append("<!ENTITY ");
- var1.append(var0[var2]);
- var1.append(" ''>");
- }
-
- return var1.toString();
- }
-
- public static String asAttributes(Hashtable var0) {
- StringBuffer var1 = new StringBuffer();
- Enumeration var2 = var0.keys();
-
- while(var2.hasMoreElements()) {
- String var3 = (String)var2.nextElement();
- String var4 = (String)var0.get(var3);
- var1.append(var3);
- var1.append(" = ");
- var1.append(StringUtilities.quoted(var4, '\''));
- if (var2.hasMoreElements()) {
- var1.append(" ");
- }
- }
-
- return var1.toString();
- }
- }
-